From 5f7fbb27c243c651dfecee5f9be22e1a6800e7b0 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Sat, 7 Aug 2004 21:46:28 +0000 Subject: [PATCH] WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to top-level window MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2004-08-07 Tor Lillqvist * gdk/win32/gdkevents-win32.c (handle_configure_event, gdk_event_translate:WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to top-level window coordinates, not just in generated events. (#148526, Robert Ögren) --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/win32/gdkevents-win32.c | 30 +++++++++++++----------------- 5 files changed, 41 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 660f356ca9..568009ee42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-08-07 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (handle_configure_event, + gdk_event_translate:WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to + top-level window coordinates, not just in generated + events. (#148526, Robert Ögren) + Sat Aug 7 01:26:08 2004 Matthias Clasen Make the column drag code a bit more robust (still scary, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 660f356ca9..568009ee42 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2004-08-07 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (handle_configure_event, + gdk_event_translate:WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to + top-level window coordinates, not just in generated + events. (#148526, Robert Ögren) + Sat Aug 7 01:26:08 2004 Matthias Clasen Make the column drag code a bit more robust (still scary, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 660f356ca9..568009ee42 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +2004-08-07 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (handle_configure_event, + gdk_event_translate:WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to + top-level window coordinates, not just in generated + events. (#148526, Robert Ögren) + Sat Aug 7 01:26:08 2004 Matthias Clasen Make the column drag code a bit more robust (still scary, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 660f356ca9..568009ee42 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2004-08-07 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (handle_configure_event, + gdk_event_translate:WM_WINDOWPOSCHANGED): Add _gdk_offset_{x,y} to + top-level window coordinates, not just in generated + events. (#148526, Robert Ögren) + Sat Aug 7 01:26:08 2004 Matthias Clasen Make the column drag code a bit more robust (still scary, diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 7a1b772503..4c0f5062dc 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1723,8 +1723,12 @@ handle_configure_event (MSG *msg, point.x = client_rect.left; /* always 0 */ point.y = client_rect.top; /* top level windows need screen coords */ - if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL) - ClientToScreen (msg->hwnd, &point); + if (gdk_window_get_parent (window) == _gdk_parent_root) + { + ClientToScreen (msg->hwnd, &point); + point.x += _gdk_offset_x; + point.y += _gdk_offset_y; + } GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl)->width = client_rect.right - client_rect.left; GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl)->height = client_rect.bottom - client_rect.top; @@ -1744,12 +1748,6 @@ handle_configure_event (MSG *msg, event->configure.x = point.x; event->configure.y = point.y; - if (gdk_window_get_parent (window) == _gdk_parent_root) - { - event->configure.x += _gdk_offset_x; - event->configure.y += _gdk_offset_y; - } - append_event (gdk_drawable_get_display (window), event); } } @@ -2994,15 +2992,19 @@ gdk_event_translate (GdkDisplay *display, point.x = client_rect.left; /* always 0 */ point.y = client_rect.top; /* top level windows need screen coords */ - if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL) - ClientToScreen (msg->hwnd, &point); + if (gdk_window_get_parent (window) == _gdk_parent_root) + { + ClientToScreen (msg->hwnd, &point); + point.x += _gdk_offset_x; + point.y += _gdk_offset_y; + } GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl)->width = client_rect.right - client_rect.left; GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl)->height = client_rect.bottom - client_rect.top; ((GdkWindowObject *) window)->x = point.x; ((GdkWindowObject *) window)->y = point.y; - + if (((GdkWindowObject *) window)->event_mask & GDK_STRUCTURE_MASK) { GdkEvent *event = gdk_event_new (GDK_CONFIGURE); @@ -3015,12 +3017,6 @@ gdk_event_translate (GdkDisplay *display, event->configure.x = point.x; event->configure.y = point.y; - if (gdk_window_get_parent (window) == _gdk_parent_root) - { - event->configure.x += _gdk_offset_x; - event->configure.y += _gdk_offset_y; - } - if (((GdkWindowObject *) window)->resize_count > 1) ((GdkWindowObject *) window)->resize_count -= 1; -- 2.30.2